package modelbase

import (
	"TaskAssignmentSystem/internal/pkg/code"
	"time"
)

const (
	WorkProj  = iota // 普通项目
	AuditProj        // 一审项目
	FinalProj        // 二审项目
)

// SystemProject 项目表
type SystemProject struct {
	code.Model
	ProjectId                string           `json:"project_id" gorm:"uniqueIndex"` //项目自定义Id
	Title                    string           `json:"title"`                         //项目标题
	Cover                    string           `json:"cover"`                         //封面
	Banner                   string           `json:"banner"`                        //banner
	TopicCount               int              `json:"topic_count"`                   //题目数量
	AnswerData               int              `json:"answer_data"`                   //答案数据
	AnswerCount              int              `json:"answer_count"`                  //已回答的题目数
	Category                 string           `json:"category"`                      //分类
	SlideShowSort            int              `json:"slide_show_sort"`               //轮播图排序序号
	Sort                     int              `json:"sort"`                          //排序
	LowerLimit               int              `json:"lower_limit"`                   //用户领取题目的下限限制
	Limit                    int              `json:"limit"`                         //用户可领取题目的上限限制
	OfflineDateTime          time.Time        `json:"offline_date_time"`             //下线时间
	OnlineDateTime           time.Time        `json:"online_date_time"`              //上线时间
	CountdownAnswer          int64            `json:"countdown_answer"`              //答题倒计时，时长
	Status                   int              `json:"status"`                        //状态 0 未上线 1 已上线 2 下线
	Hint                     string           `json:"hint" gorm:"size:1200"`         //项目提示
	GiveUpReasons            code.SliceString `json:"give_up_reasons"`               //放弃原因列表
	ProjectPrice             string           `json:"project_price"`                 //项目单价
	Describe                 string           `json:"describe"`                      //项目描述
	Cd                       int              `json:"cd"`                            //领取题目CD时间（必填）
	EnumType                 int              `json:"enum_type"`                     //项目类型 0:普通项目 1:一审项目 2:二审项目
	WorkProjectId            string           `json:"work_project_id"`               //关联普通项目ID
	AuditProjectId           string           `json:"audit_project_id"`              //关联一审项目ID
	FinalProjectId           string           `json:"final_project_id"`              //关联二审项目ID
	DayLimit                 int              `json:"day_limit"`                     //用户每日领取题目的上限
	DayGiveUpLimit           int              `json:"day_give_up_limit"`             //用户每日放弃题目的上限
	RejectionTimePeriod      code.SliceString `json:"rejection_time_period"`         //固定驳回时间
	AuditQuickTemplate       code.SliceString `json:"audit_quick_template"`          //审核快速输入列表
	CtrlIncrementUnit        int              `json:"ctrl_increment_unit"`           //领取/放弃上限递增单位
	CtrlDecreaseUnit         int              `json:"ctrl_decrease_unit"`            //领取/放弃上限递减单位
	OpenPerm                 string           `json:"open_perm"`                     //默认开启权限（选填）
	ClosePerm                string           `json:"close_perm"`                    //默认关闭权限（选填）
	Visibility               int              `json:"visibility"`                    //可见性 0 可见 1 不可见（需要有权限）
	OldUserRestrtction       int              `json:"old_user_restrtction"`          //老用户权限[关闭0，开启1]
	NewUserRestrtction       int              `json:"new_user_restrtction"`          //新用户权限[关闭0，开启1]
	SpecialClassificationOne int              `json:"special_classification_one"`    //特殊分类1(0-关闭,1-开启)
	SpecialClassificationTwo int              `json:"special_classification_two"`    //特殊分类2(0-关闭,1-开启)
	Collect                  string           `json:"collect" gorm:"-"`              //收藏
}
